#include <time.h>
#include <stdio.h>
#include <stdlib.h>

#define nb_matchs 105

int main(char* argc, char** argv){
  
  FILE* fd = fopen("../csv/StatJoueurMatch.csv", "w");
  
  srand(time(NULL));
  
  int reb, trois, sho, LF, interc, cont, perdues, fautes, match_com, min, minMax, comMax;
  
  
  int joueurs[2][337];
  int matchs[2][nb_matchs*2] = {{},
				{25,24, 2,15,  13,10, 21,4,  14,1, 
				 18,8,  27,11, 19,16, 12,25, 17,26, 
				 5,2,   23,15, 28,20, 9,10,  7,29, 
				 6,3,   29,24, 22,30, 23,1,  28,5, 
				 3,11,  17,16, 9,12,  24,13, 18,26, 
				 2,20,  15,22, 19,7,  6,14,  8,21,
				 27,19, 4,8,   20,25, 5,26,  11,23, 
				 1,30,  10,7,  14,17, 16,3,  13,9,  
				 18,15, 12,6,  21,29, 26,28, 4,25,  
				 12,27, 5,1,   16,25, 8,2,   30,23, 
				 15,17, 13,14, 10,19, 1,8,   23,11,
				 2,16,  29,28, 26,13, 7,6,   22,17, 
				 24,27, 9,14,  12,21, 18,3,  4,20,  
				 25,21, 2,4,   17,1,  23,5,  11,16, 
				 13,28, 7,12,  19,15, 22,18, 20,30, 
				 9,29,  24,14, 8,3,   16,19, 30,5,  
				 25,28, 29,12, 15,18, 3,22,  6,7,   
				 27,10, 26,14, 8,9,   1,24,  13,25, 
				 21,2,  20,23, 10,17, 22,1,  28,9,
				 14,24, 6,2,   4,7,   3,27,  18,5,
				 25,8,  19,12, 16,20, 11,7,  13,17}};
	  
  int i=0;
  int j = 0;
  for(i=0; i<nb_matchs*2; i++){
    if(i%2 == 0)
      j++;
    matchs[0][i] = j;

  }

  
  for(i=0; i<13; i++)
    joueurs[0][i] = 6;
  for(i=13; i<25; i++)
    joueurs[0][i] = 10;
  for(i=25; i<36; i++)
    joueurs[0][i] = 14;
  for(i=36; i<47; i++)
    joueurs[0][i] = 19;
  for(i=47; i<58; i++)
    joueurs[0][i] = 27;
  for(i=58; i<69; i++)
    joueurs[0][i] = 7;
  for(i=69; i<80; i++)
    joueurs[0][i] = 17;
  for(i=80; i<91; i++)
    joueurs[0][i] = 25;
  for(i=91; i<101; i++)
    joueurs[0][i] = 21;
  for(i=101; i<113; i++)
    joueurs[0][i] = 29;
  for(i=113; i<123; i++)
    joueurs[0][i] = 9;
  for(i=123; i<134; i++)
    joueurs[0][i] = 12;
  for(i=134; i<145; i++)
    joueurs[0][i] = 13;
  for(i=145; i<156; i++)
    joueurs[0][i] = 24;
  for(i=156; i<166; i++)
    joueurs[0][i] = 26;
  for(i=166; i<178; i++)
    joueurs[0][i] = 2;
  for(i=178; i<189; i++)
    joueurs[0][i] = 18;
  for(i=189; i<200; i++)
    joueurs[0][i] = 20;
  for(i=200; i<211; i++)
    joueurs[0][i] = 23;
  for(i=211; i<223; i++)
    joueurs[0][i] = 28;
  for(i=223; i<234; i++)
    joueurs[0][i] = 4;
  for(i=234; i<245; i++)
    joueurs[0][i] = 5;
  for(i=245; i<256; i++)
    joueurs[0][i] = 8;
  for(i=256; i<267; i++)
    joueurs[0][i] = 11;
  for(i=267; i<280; i++)
    joueurs[0][i] = 16;
  for(i=280; i<291; i++)
    joueurs[0][i] = 1;
  for(i=291; i<302; i++)
    joueurs[0][i] = 3;
  for(i=302; i<315; i++)
    joueurs[0][i] = 15;
  for(i=315; i<326; i++)
    joueurs[0][i] = 22;
  for(i=326; i<337; i++)
    joueurs[0][i] = 30;
  for(i=0; i<337; i++)
    joueurs[1][i] = i+1;
  

  for(i=0; i<nb_matchs*2; i++){
    minMax = 240;
    comMax = 5;
    
    for(j=0; j<337; j++)
      if(joueurs[0][j] == matchs[1][i])
	break;
    
    while(j<337 && joueurs[0][j] == matchs[1][i]){
      
      min = (int)(rand() % 40);
      
      if(minMax < min){
	min = (int)minMax;
	minMax = 0;
      }
      else
	minMax = (int)(minMax - min);
      
      reb = (int)(rand() % 25);
      trois = (int)(rand() % 10);
      sho = (int)(rand() % 30);
      LF = (int)(rand() % 17);
      interc = (int)(rand() % 8);
      cont = (int)(rand() % 8);
      perdues = (int)(rand() % 8);
      fautes = (int)(rand() % 6);
      match_com = (int)(rand() % 2);
      
      if(comMax < match_com){
	match_com = (int)comMax;
	comMax = 0;
      }
      else
	comMax = (int)(comMax - match_com);
      
      fprintf(fd, 
	      "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",
	      matchs[0][i], 
	      joueurs[1][j],
	      min,
	      (int)(rand() % 30),
	      reb,
	      (int)(reb*(rand()/((double)RAND_MAX))),
	      trois,
	      (int)((rand()/((double)RAND_MAX)) * trois),
	      sho,
	      (int)((rand()/((double)RAND_MAX)) * sho),
	      LF,
	      (int)((rand()/((double)RAND_MAX)) * LF),
	      interc,
	      cont,
	      (int)((rand()/((double)RAND_MAX)) * cont),
	      perdues,
	      fautes,
	      (int)((rand()/((double)RAND_MAX)) * fautes)%3,
	      match_com);
      
      j++;
    }
    
    i++;
    minMax = 240;
    comMax = 5;
    
    for(j=0; j<337; j++)
      if(joueurs[0][j] == matchs[1][i])
	break;
    
    while(j<337 && joueurs[0][j] == matchs[1][i]){
      
      min = (int)(rand() % 40);
      
      if(minMax < min){
	min = (int)minMax;
	minMax = 0;
      }
      else
	minMax = (int)(minMax - min);
      
      reb = (int)(rand() % 25);
      trois = (int)(rand() % 10);
      sho = (int)(rand() % 30);
      LF = (int)(rand() % 17);
      interc = (int)(rand() % 8);
      cont = (int)(rand() % 8);
      perdues = (int)(rand() % 8);
      fautes = (int)(rand() % 6);
      match_com = (int)(rand() % 2);
      
      if(comMax < match_com){
	match_com = (int)comMax;
	comMax = 0;
      }
      else
	comMax = (int)(comMax - match_com);
      
      fprintf(fd, 
	      "%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",
	      matchs[0][i], 
	      joueurs[1][j],
	      min,
	      (int)(rand() % 30),
	      reb,
	      (int)(reb*(rand()/((double)RAND_MAX))),
	      trois,
	      (int)((rand()/((double)RAND_MAX)) * trois),
	      sho,
	      (int)((rand()/((double)RAND_MAX)) * sho),
		LF,
	      (int)((rand()/((double)RAND_MAX)) * LF),
	      interc,
	      cont,
	      (int)((rand()/((double)RAND_MAX)) * cont),
	      perdues,
	      fautes,
	      (int)((rand()/((double)RAND_MAX)) * fautes)%3,
	      match_com);
      
	j++;
    }
  }
  fclose(fd);
}
